package com.oms.service;

import java.io.Serializable;
import java.util.List;



public interface BaseService<T> {


	/**
	 * 传入对象，插入数据行
	 * @param t
	 */
    public void save(T t);
	
	/**
	 * 传入对象，更新数据行
	 * @param t
	 */
    public void update(T t);
    
    /**
     * 传入主键删除改该对象
     * @param pk
     */
    public void del(Serializable pk);
    
    /**
     * 传入对象删除改该对象
     * @param t
     */
    public void del(T t);
    
    /**
     * 传入主键Pk,查找对象
     * @param pk
     * @return
     */
    public T findById(Serializable pk);

    /**
     * 无条件查找全部
     * @return
     */
    public List<T> findAll();
    
    /**
     * 无条件分页查询
     * @param start
     * @param count
     * @return
     */
    public List<T> findByPage(int start,int count);
    
    /**
     * 传入hql语句和参数数组进行查询对象结果集
     * @param hql
     * @param params
     * @return
     */
	public List<T> list(String hql, Object... params);
    
	/**
	 * 传入hql语句和参数数组进行查询结果总数量
	 * @param hql
	 * @param params
	 * @return
	 */
	public int getTotalCount(String hql, Object... params);

	/**
	 * 传入hql语句、开始行数、结束行数和参数数组进行查询对象结果集
	 * @param hql
	 * @param firstResult
	 * @param maxResults
	 * @param params
	 * @return
	 */
	public List<T> list(String hql, int firstResult, int maxResults,
			Object... params);
}
